计算机组成原理

您所在的位置:网站首页 字扩展 位扩展 字位扩展 计算机组成原理

计算机组成原理

2023-06-20 11:21| 来源: 网络整理| 查看: 265

首先,需要建立的一种直观的认知是:既然是扩展操作码,就意味着操作码的位数越变越多!  之所以这么强调,是因为常常混淆了操作码的扩展方向。

再看扩展的原理:  假设指令字长是16位,平均劈开成4份,高位4位用作操作码,低12位分别用作三个地址码。

那么操作码的个数就是四个二进制所能表达的离散数目:

OK,如果地址码只能做地址码,这是最终的结局了。  但是,如果地址码可以化身为操作码,这并不难对吧,毕竟都是二进制的数位而已。  非常粗略的认为,现在第一个地址4位也用作操作码,那么总的看来就是高8位用作操作码,低8位用作两个地址码了。

按理说,即,共计有256种操作码。  虽然,用8位和用4位各自表达操作码,互不干扰的。但是,实际上呢,单操作码只有15条,且二地址的操作码只有16条,如果还要继续扩展,二地址的也只有15条了!  为什么差别这么大?  答案是两个原则不可以破:

不允许短码是长码的前缀各指令的操作码一定不能重复

为了满足第一条,我们看8位操作码的时候,前面四位全是四位操作码已经出现过的!  所以,设计思路只能变成:前面四位只用15种离散状态,保留一个给二地址扩展用。因此,8位操作码,实际上限定了高4位的值,只是低四位可以离散,共16种状态,要想再继续扩展,自己最多只敢用15种,还得保留一个种子呢!

这便是整个的扩展操作码的原理。当然可以有其他变种,这里不做展开。

看一个例子:

一个计算机系统采用32位单字长指令,地址码是12位,如果定义了250条二地址指令,那么还有(24K )条单地址指令。

怎么理解,这里的地址码限定为12位,说的是一个地址码就12位,如果有2个地址,那就是24位了!我会下意识的以为,哦,只分配12位作地址码,这是不对的。

由原理分析我们知道得问自己一下,这个是不是从三地址开始扩展来的?计算一下,12*3 = 36,超过了总的位数,因此,二地址是起点。之所以这么想,是因为我们知道二地址不一定是扩展的起点。  二地址共用掉24位作操作数地址,高位有8位作操作码。共有种操作码状态,现在只用了250种,因此,还有6个可以供下一个扩展用,一地址码就意味着有中间12位可以做操作码,于是根据乘法原理:. 这里不考虑继续扩展成0地址码,因为问的是可以有,考虑的是最多可以有,是上限值。

题一:某计算机指令字长为16位,指令有双操作数、单操作数和无操作数3种格式,每个操作数字段均用6位二进制表示,该指令系统共有m条(m

也即:中间6位共64种状态有(16-P)*64 - Q/64用来做一地址自身了,于是一地址共有:(16-P)*64-Q/64种。

这里说最多,是因为,一地址指令可以设计的比这小,虽然理论上可以这么多。

以上。

 

PS: 乘法原理就是分步用乘法,比如高位有6个状态,再第二步有种 ,乘起来就是结果。

以上。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3